package pqt;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Frame;
import java.awt.Image;
import java.awt.List;

import javax.print.attribute.AttributeSet;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JFormattedTextField;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JOptionPane;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.Toolkit;
import java.lang.reflect.Array;
import java.sql.Date;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.zip.DataFormatException;

import javax.swing.FocusManager;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.DocumentListener;
import javax.swing.text.BadLocationException;
import javax.swing.text.DocumentFilter;
import javax.swing.text.JTextComponent;
import javax.swing.text.NumberFormatter;
import javax.swing.text.PlainDocument;

import org.apache.commons.codec.digest.DigestUtils;
import org.w3c.dom.Document;


public class Main extends JFrame{

	private Ensayo ensayo = Ensayo.getInstance();
	private Balanza balanza = Balanza.getInstance();
	private BaseDeDatos db;
	private JFrame frmSystel;
	private JLabel labelBalanza;
	private JLabel labelModeloBalanza;
	private JLabel labelNumeroDeSerie;
	private JButton btnIniciar;
	private JLabel lblNewLabel;
	private JButton btnInforme;
	private JButton btnEstado;
	private JTextField textField;
	private JLabel lblIngreseElModelo;
	private JButton btnConformidad;
	private JLabel lblEnsayoFinalY;
	private JLabel labelDni = new JLabel("");
	private int dni = 0; 
	private int indexEnsayos = 0;
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					Main window = new Main();
					window.frmSystel.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the application.
	 * @throws SQLException 
	 */
	public Main() throws SQLException {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 * @throws SQLException 
	 */
	private void initialize() throws SQLException {
		
		// Base De Datos
		db = new BaseDeDatos();
		db.conectarDB();

		frmSystel = new JFrame();
		frmSystel.getContentPane().setBackground(new Color(204, 204, 204));
		frmSystel.setIconImage(Toolkit.getDefaultToolkit().getImage(Main.class.getResource("/img/icono.png")));
		frmSystel.setTitle("Systel\r\n");
		frmSystel.setBounds(100, 100, 1443, 750);
		frmSystel.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frmSystel.getContentPane().setLayout(null);
		
		btnIniciar = new JButton("");
		btnIniciar.setFocusable(true);
		btnIniciar.setContentAreaFilled(false);
		btnIniciar.setBorderPainted(false);
		btnIniciar.setBorder(null);
		btnIniciar.setBounds(501, 250, 372, 100);
		btnIniciar.setIcon(new ImageIcon(Main.class.getResource("/img/IniciarAzulGrande.png")));
		btnIniciar.setPressedIcon(new ImageIcon(Main.class.getResource("/img/IniciarBlancoGrande.png")));
		getRootPane().setDefaultButton(btnIniciar);
		btnIniciar.addKeyListener(new KeyAdapter() {
			@Override
			public void keyPressed(KeyEvent tecla) {
				
				if(tecla.getKeyCode() == KeyEvent.VK_ENTER)
				{
					try {
						iniciarEnsayo();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			}
		});
		btnIniciar.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseEntered(MouseEvent arg0) {
				btnIniciar.setIcon(new ImageIcon(Main.class.getResource("/img/IniciarVerdeGrande.png")));
				//getRootPane().setDefaultButton(btnIniciar);
				
			}
			@Override
			public void mouseExited(MouseEvent e) {
				btnIniciar.setIcon(new ImageIcon(Main.class.getResource("/img/IniciarAzulGrande.png")));
				//getRootPane().setDefaultButton(null);
			}
		});
		btnIniciar.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				btnIniciar.setIcon(new ImageIcon(Main.class.getResource("/img/IniciarVerdeGrande.png")));
				//getRootPane().setDefaultButton(btnIniciar);
			}
			@Override
			public void focusLost(FocusEvent e) {
				btnIniciar.setIcon(new ImageIcon(Main.class.getResource("/img/IniciarAzulGrande.png")));
				//getRootPane().setDefaultButton(null);
			}
		});
		
		
		btnIniciar.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			
				try {
					iniciarEnsayo();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			
			}
		});
		
		
		frmSystel.getContentPane().add(btnIniciar);
		
		labelBalanza = new JLabel("");
		labelBalanza.setBounds(954, 0, 416, 272);
		frmSystel.getContentPane().add(labelBalanza);
		
		labelModeloBalanza = new JLabel("");
		labelModeloBalanza.setHorizontalAlignment(SwingConstants.LEFT);
		labelModeloBalanza.setFont(new Font("Tahoma", Font.PLAIN, 30));
		labelModeloBalanza.setBounds(1029, 286, 331, 39);
		frmSystel.getContentPane().add(labelModeloBalanza);
		
		labelNumeroDeSerie = new JLabel("");
		labelNumeroDeSerie.setHorizontalAlignment(SwingConstants.LEFT);
		labelNumeroDeSerie.setFont(new Font("Tahoma", Font.PLAIN, 30));
		labelNumeroDeSerie.setBounds(1029, 334, 331, 39);
		frmSystel.getContentPane().add(labelNumeroDeSerie);
		
		lblNewLabel = new JLabel("");
		lblNewLabel.setIcon(new ImageIcon(Main.class.getResource("/img/LogoSystel.png")));
		lblNewLabel.setBounds(1195, 636, 165, 65);
		frmSystel.getContentPane().add(lblNewLabel);
//---------------------------------------------------------------------------------------------------------		
		btnInforme = new JButton("");
		btnInforme.setFocusable(true);
		btnInforme.setContentAreaFilled(false);
		btnInforme.setBorderPainted(false);
		btnInforme.setBorder(null);
		btnInforme.setBounds(70, 490, 372, 100);
		btnInforme.setIcon(new ImageIcon(Main.class.getResource("/img/InformeAzulGrande.png")));
		btnInforme.setPressedIcon(new ImageIcon(Main.class.getResource("/img/InformeBlancoGrande.png")));
		btnInforme.setVisible(false);
		frmSystel.getContentPane().add(btnInforme);
		
		btnInforme.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseEntered(MouseEvent arg0) {
				btnInforme.setIcon(new ImageIcon(Main.class.getResource("/img/InformeVerdeGrande.png")));
				//getRootPane().setDefaultButton(btnIniciar);
				
			}
			@Override
			public void mouseExited(MouseEvent e) {
				btnInforme.setIcon(new ImageIcon(Main.class.getResource("/img/InformeAzulGrande.png")));
				//getRootPane().setDefaultButton(null);
			}
		});
		btnInforme.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				btnInforme.setIcon(new ImageIcon(Main.class.getResource("/img/InformeVerdeGrande.png")));
				//getRootPane().setDefaultButton(btnIniciar);
			}
			@Override
			public void focusLost(FocusEvent e) {
				btnInforme.setIcon(new ImageIcon(Main.class.getResource("/img/InformeAzulGrande.png")));
				//getRootPane().setDefaultButton(null);
			}
		});
		
		
		
//--------------------------------------------------------------------------------------------------------
		btnEstado = new JButton("");
		btnEstado.setFocusable(true);
		btnEstado.setContentAreaFilled(false);
		btnEstado.setBorderPainted(false);
		btnEstado.setBorder(null);
		btnEstado.setBounds(486, 490, 375, 100);
		btnEstado.setIcon(new ImageIcon(Main.class.getResource("/img/CertificadoAzulGrande.png")));
		btnEstado.setPressedIcon(new ImageIcon(Main.class.getResource("/img/CertificadoBlancoGrande.png")));
		btnEstado.setVisible(false);
		frmSystel.getContentPane().add(btnEstado);
		
		btnEstado.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseEntered(MouseEvent arg0) {
				btnEstado.setIcon(new ImageIcon(Main.class.getResource("/img/CertificadoVerdeGrande.png")));
				//getRootPane().setDefaultButton(btnIniciar);
				
			}
			@Override
			public void mouseExited(MouseEvent e) {
				btnEstado.setIcon(new ImageIcon(Main.class.getResource("/img/CertificadoAzulGrande.png")));
				//getRootPane().setDefaultButton(null);
			}
		});
		btnEstado.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				btnEstado.setIcon(new ImageIcon(Main.class.getResource("/img/CertificadoVerdeGrande.png")));
				//getRootPane().setDefaultButton(btnIniciar);
			}
			@Override
			public void focusLost(FocusEvent e) {
				btnEstado.setIcon(new ImageIcon(Main.class.getResource("/img/CertificadoAzulGrande.png")));
				//getRootPane().setDefaultButton(null);
			}
		});
//--------------------------------------------------------------------------------------------------------		
		btnConformidad = new JButton("");
		btnConformidad.setFocusable(true);
		btnConformidad.setContentAreaFilled(false);
		btnConformidad.setBorderPainted(false);
		btnConformidad.setBorder(null);
		btnConformidad.setBounds(897, 490, 372, 100);
		btnConformidad.setIcon(new ImageIcon(Main.class.getResource("/img/ConformidadAzulGrande.png")));
		btnConformidad.setPressedIcon(new ImageIcon(Main.class.getResource("/img/ConformidadBlancoGrande.png")));
		btnConformidad.setVisible(false);
		frmSystel.getContentPane().add(btnConformidad);
		
		lblEnsayoFinalY = new JLabel("ENSAYO FINAL Y CALIBRACION");
		lblEnsayoFinalY.setFont(new Font("Tahoma", Font.PLAIN, 45));
		lblEnsayoFinalY.setBounds(351, 11, 659, 73);
		frmSystel.getContentPane().add(lblEnsayoFinalY);
		
		
		labelDni.setFont(new Font("Tahoma", Font.PLAIN, 30));
		labelDni.setBounds(10, 84, 311, 39);
		frmSystel.getContentPane().add(labelDni);
		
		
		
		btnConformidad.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseEntered(MouseEvent arg0) {
				btnConformidad.setIcon(new ImageIcon(Main.class.getResource("/img/ConformidadVerdeGrande.png")));
				//getRootPane().setDefaultButton(btnIniciar);
				
			}
			@Override
			public void mouseExited(MouseEvent e) {
				btnConformidad.setIcon(new ImageIcon(Main.class.getResource("/img/ConformidadAzulGrande.png")));
				//getRootPane().setDefaultButton(null);
			}
		});
		btnConformidad.addFocusListener(new FocusAdapter() {
			@Override
			public void focusGained(FocusEvent arg0) {
				btnConformidad.setIcon(new ImageIcon(Main.class.getResource("/img/ConformidadVerdeGrande.png")));
				//getRootPane().setDefaultButton(btnIniciar);
			}
			@Override
			public void focusLost(FocusEvent e) {
				btnConformidad.setIcon(new ImageIcon(Main.class.getResource("/img/ConformidadAzulGrande.png")));
				//getRootPane().setDefaultButton(null);
			}
		});
		
		frmSystel.setExtendedState(Frame.MAXIMIZED_BOTH);
		//
	}

//***************INICIAR ENSAYO*****************
	
private void iniciarEnsayo() throws SQLException {
	
	solicitarDni();
	labelDni.setText(Integer.toString(dni));
	solicitarBalanza();
	
	// Consultamos el modo y tipo del ensayo
	
	if(!db.registrarVariablesEnsayo()) {
		  JOptionPane.showMessageDialog(null,"Error al determinar las variables");
		  return;
		}
	
	// Registramos en la tabla Instancia Ensayo
	if(!db.registrarInstanciaEnsayo()) {
		  JOptionPane.showMessageDialog(null,"Error al registrar Tabla Instancia");
		  return;
		}
	
	//**** LLAMO A LOS ATRIBUTOS
	crearAtributos();
	
/*	
	// Consultamos los bloques y atributos del Ensayo
	if(!db.registrarEnsayoMetrologico()) {
		  JOptionPane.showMessageDialog(null,"Error al determinar bloques metrologicos");
		  return;
		}
	
	// Debug 
	System.out.println("Modo Ensayo: " +ensayo.getModoEnsayo());
	System.out.println("Tipo Ensayo: " +ensayo.getTipoEnsayo());
	System.out.println("Descripcion Balanza: "+balanza.getDescripcion());
	siguienteEnsayo(); */
	finalizarEnsayo();

}

//****************SOLICITAR DNI***********************

private void solicitarDni(){
	
	final JDialog dialogo = new JDialog();
	final JPanel panelDni = new JPanel();
	final JButton btnDniAceptar = new JButton("");
	JLabel lblIngreseSuDni = new JLabel("Documento");
	JLabel lblContrasea = new JLabel("Contrase\u00F1a");
	//NumberFormat longFormat = NumberFormat.getInstance();
	//NumberFormatter formato = new NumberFormatter(longFormat);
	//formato.setValueClass(Integer.class);
	//formato.setMinimum(0);
	//formato.setMaximum(Integer.MAX_VALUE);
	final JTextField textoDni = new JTextField();
	
//-------------------------------------------------------DIALOGO------------------------------------------------------------------
	dialogo.setModal(true);
	dialogo.setSize(500,500);
	dialogo.setTitle("Ingreso");
	dialogo.setIconImage(Toolkit.getDefaultToolkit().getImage(Main.class.getResource("/img/icono.png")));
	dialogo.setBounds(100, 100, 703, 473);
	dialogo.setResizable(false);
	dialogo.getContentPane().setLayout(new BorderLayout());
	dialogo.setModal(true);
	dialogo.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
	dialogo.setLocationRelativeTo(null);

	
//-------------------------------------------------------PANEL------------------------------------------------------------------
	panelDni.setBackground(new Color(204, 204, 204));
	panelDni.setBorder(new EmptyBorder(5, 5, 5, 5));
	panelDni.setLayout(null);
	dialogo.getContentPane().add(panelDni, BorderLayout.CENTER);
	
//-------------------------------------------------------LABEL DNI------------------------------------------------------------------
	lblIngreseSuDni.setHorizontalAlignment(SwingConstants.LEFT);
	lblIngreseSuDni.setFont(new Font("Tahoma", Font.PLAIN, 40));
	lblIngreseSuDni.setBounds(10, 84, 225, 60);
	
//-------------------------------------------------------CAMPO DNI------------------------------------------------------------------
	textoDni.setFont(new Font("Tahoma", Font.PLAIN, 40));
	textoDni.setColumns(10);
	textoDni.setBounds(241, 81, 434, 67);
	textoDni.addActionListener(	new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            // Se transfiere el foco al siguiente elemento.
            ((JTextField) arg0.getSource()).transferFocus();
        }
    });
	
//-------------------------------------------------------CAMPO PASSWORD------------------------------------------------------------------
	final JPasswordField dniTextoPass = new JPasswordField();
	dniTextoPass.setFont(new Font("Tahoma", Font.PLAIN, 40));
	dniTextoPass.setColumns(10);
	dniTextoPass.setBounds(241, 172, 434, 67);
	
	dniTextoPass.addActionListener(	new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            // Se transfiere el foco al siguiente elemento.
            ((JTextField) arg0.getSource()).transferFocus();
        }
    });
	
//-------------------------------------------------------LABEL PASSWORD------------------------------------------------------------------
	lblContrasea.setHorizontalAlignment(SwingConstants.LEFT);
	lblContrasea.setFont(new Font("Tahoma", Font.PLAIN, 40));
	lblContrasea.setBounds(10, 179, 225, 60);
	
//-------------------------------------------------------BOTON ACEPTAR------------------------------------------------------------------
	btnDniAceptar.setFocusable(true);
	btnDniAceptar.setContentAreaFilled(false);
	btnDniAceptar.setBorderPainted(false);
	btnDniAceptar.setBorder(null);
	btnDniAceptar.setBounds(158, 314, 374, 100);
	btnDniAceptar.setIcon(new ImageIcon(Main.class.getResource("/img/LoginAzulGrande.png")));
	btnDniAceptar.setPressedIcon(new ImageIcon(Main.class.getResource("/img/LoginBlancoGrande.png")));
	
	btnDniAceptar.addActionListener(new ActionListener() {
		public void actionPerformed(ActionEvent e) {
			
//********USUARIO*******************			

			dni = Integer.parseInt(textoDni.getText());
			char[] pass = dniTextoPass.getPassword();
			String clave = new String(pass);
//			System.out.println("password: "+s +" y encriptado: "+DigestUtils.sha1Hex(s));
//			System.out.println("DNI: " +dni);
			
			try {
				if(!db.registrarIngresoUsuario(dni, clave)){
					JOptionPane.showMessageDialog(null,"Acceso incorrecto");
					return;
				}
				else dialogo.dispose();
				
			} catch (SQLException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		
		}
	});
	
	btnDniAceptar.addMouseListener(new MouseAdapter() {
		@Override
		public void mouseEntered(MouseEvent arg0) {
			btnDniAceptar.setIcon(new ImageIcon(Main.class.getResource("/img/LoginVerdeGrande.png")));
			//getRootPane().setDefaultButton(btnDniAceptar);
			
		}
		@Override
		public void mouseExited(MouseEvent e) {
			btnDniAceptar.setIcon(new ImageIcon(Main.class.getResource("/img/LoginAzulGrande.png")));
			//getRootPane().setDefaultButton(null);
		}
	});
	btnDniAceptar.addFocusListener(new FocusAdapter() {
		@Override
		public void focusGained(FocusEvent arg0) {
			btnDniAceptar.setIcon(new ImageIcon(Main.class.getResource("/img/LoginVerdeGrande.png")));
			dialogo.getRootPane().setDefaultButton(btnDniAceptar);
		}
		@Override
		public void focusLost(FocusEvent e) {
			btnDniAceptar.setIcon(new ImageIcon(Main.class.getResource("/img/LoginAzulGrande.png")));
			//getRootPane().setDefaultButton(null);
		}
	});
	
//-------------------------------------------------------AGREGO ELEMENTOS AL PANEL------------------------------------------------------------------
	panelDni.add(textoDni);
	panelDni.add(lblIngreseSuDni);
	panelDni.add(lblContrasea);
	panelDni.add(dniTextoPass);
	panelDni.add(btnDniAceptar);
	
	dialogo.setVisible(true);
	
}// FIN METODO solicitar DNI


//*****************SOLICITAR BALANZA**********************

private void solicitarBalanza() {
	
	final JDialog dialogo = new JDialog();
	final JPanel panelBalanza = new JPanel();
	textField = new JTextField();
	dialogo.setTitle("Balanza");
	dialogo.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
	dialogo.setIconImage(Toolkit.getDefaultToolkit().getImage(Main.class.getResource("/img/icono.png")));
	dialogo.setModal(true);
	dialogo.setBounds(100, 100, 638, 425);
	dialogo.getContentPane().setLayout(new BorderLayout());
	panelBalanza.setBackground(new Color(204, 204, 204));
	panelBalanza.setBorder(new EmptyBorder(5, 5, 5, 5));
	dialogo.getContentPane().add(panelBalanza, BorderLayout.CENTER);
	panelBalanza.setLayout(null);

//-------------------------------------------CAMPO BALANZA-------------------------------------------------
	
		
		textField.setFont(new Font("Tahoma", Font.PLAIN, 40));
		textField.setBounds(63, 117, 494, 67);
		textField.addActionListener(	new ActionListener() {

	        @Override
	        public void actionPerformed(ActionEvent arg0) {
	            // Se transfiere el foco al siguiente elemento.
	            ((JTextField) arg0.getSource()).transferFocus();
	        }
	    });
		
		textField.setColumns(10);
	
//--------------------------------------------------LABEL BALANZA-----------------------------------------------
	
		lblIngreseElModelo = new JLabel("Ingrese equipo a ensayar");
		lblIngreseElModelo.setFont(new Font("Tahoma", Font.PLAIN, 40));
		lblIngreseElModelo.setHorizontalAlignment(SwingConstants.CENTER);
		lblIngreseElModelo.setBounds(10, 21, 602, 60);

//----------------------------------------------BOTON BALANZA------------------------------------------------------------

		final JButton btnBalanzaAceptar = new JButton("");
		btnBalanzaAceptar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent arg0) {
					
//**********************************BALANZA**************************************************************					
					String serie, modelo = textField.getText();
					
					if(textField.getText().length() == 12) {
						serie = textField.getText().substring(5,12);
						modelo = textField.getText().substring(0,5);
					}
					else if(textField.getText().length() == 13) {
						serie = textField.getText().substring(6,13);
						modelo = textField.getText().substring(0,6);
					}
					else {
						System.out.println("Longitud incorrecta");
						JOptionPane.showMessageDialog(null,"Longitud incorrecta");
						textField.setText(null);
						return;
					}
						
					System.out.println("Serie:"+serie);
					System.out.println("Modelo:"+modelo);

					try {
						if(!db.registrarIngresoBalanza(modelo, serie)){
							System.out.println("Modelo no encontrado");
							JOptionPane.showMessageDialog(null,"Modelo no encontrado");
							textField.setText(null);
							return;
						}
						else {
							dialogo.dispose();
						}
						
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}	
		
			});
			btnBalanzaAceptar.setFocusable(true);
			btnBalanzaAceptar.setContentAreaFilled(false);
			btnBalanzaAceptar.setBorderPainted(false);
			btnBalanzaAceptar.setBorder(null);
			btnBalanzaAceptar.setBounds(116, 235, 374, 100);
			btnBalanzaAceptar.setIcon(new ImageIcon(Main.class.getResource("/img/AceptarAzulGrande.png")));
			btnBalanzaAceptar.setPressedIcon(new ImageIcon(Main.class.getResource("/img/AceptarBlancoGrande.png")));
			
			
			btnBalanzaAceptar.addMouseListener(new MouseAdapter() {
				
				public void mouseEntered(MouseEvent arg0) {
					btnBalanzaAceptar.setIcon(new ImageIcon(Main.class.getResource("/img/AceptarVerdeGrande.png")));
					//getRootPane().setDefaultButton(btnBalanzaAceptar);
					
				}
				public void mouseExited(MouseEvent e) {
					btnBalanzaAceptar.setIcon(new ImageIcon(Main.class.getResource("/img/AceptarAzulGrande.png")));
					//getRootPane().setDefaultButton(null);
				}
			});
			btnBalanzaAceptar.addFocusListener(new FocusAdapter() {
				@Override
				public void focusGained(FocusEvent arg0) {
					btnBalanzaAceptar.setIcon(new ImageIcon(Main.class.getResource("/img/AceptarVerdeGrande.png")));
					dialogo.getRootPane().setDefaultButton(btnBalanzaAceptar);
				}
				@Override
				public void focusLost(FocusEvent e) {
					btnBalanzaAceptar.setIcon(new ImageIcon(Main.class.getResource("/img/AceptarAzulGrande.png")));
					//getRootPane().setDefaultButton(null);
				}
			});		
				
//-------------------------------------------------------AGREGO ELEMENTOS AL PANEL------------------------------------------------------------------		
		panelBalanza.add(btnBalanzaAceptar);
		panelBalanza.add(textField);
		panelBalanza.add(lblIngreseElModelo);
	
		//////////////////////////////////////////////////////////////////////////////			

		dialogo.setLocationRelativeTo(null);
		dialogo.setVisible(true);
	
	}// FIN METODO SOLICITAR BALANZA

public void siguienteEnsayo() {
		
	if(indexEnsayos<ensayo.getOrdenEnsayo().getItemCount()) {
		
	/*	if(ensayo.getOrdenEnsayo().getItem(indexEnsayos).toString() == "Atributos") {
			
			EnsayoAtributos ensayoAtributo = new EnsayoAtributos(this, panelEnsayos, bloque);
		}
	*/	
		if(ensayo.getOrdenEnsayo().getItem(indexEnsayos).toString() == "PuestaCero") {
			
		}
		
		if(ensayo.getOrdenEnsayo().getItem(indexEnsayos).equalsIgnoreCase("Movilidad")) {
			
		}
		
		if(ensayo.getOrdenEnsayo().getItem(indexEnsayos).toString() == "Linealidad") {
			
		}
		
		if(ensayo.getOrdenEnsayo().getItem(indexEnsayos).toString() == "Fidelidad") {
			
		}
		
		if(ensayo.getOrdenEnsayo().getItem(indexEnsayos).toString() == "Excentricidad") {
			
		}
	}
	else
	{
		System.out.println("ERROR");
	}
	indexEnsayos++;
	
}

private void crearAtributos() throws SQLException {
	//creo el array de bloques, 3 es un valor que se debe leer de la base de datos.
	db.registrarBloqueAtributo();
	int nBloques = ensayo.getBloqueAtributo().getItemCount();
	System.out.println("bloques: "+nBloques);
	
	Bloque bloque[] = new Bloque[nBloques];
	
	for (int i = 0; i < nBloques; i++) {
		db.registrarAtributo(Integer.parseInt(ensayo.getIdBloqueAtributo().getItem(i)));
		db.registrarFalla(Integer.parseInt(ensayo.getIdBloqueAtributo().getItem(i)));
		System.out.println("Bloque nro: "+i);
		
		int nAtributos = ensayo.getAtributo().getItemCount();
		int nFallas = ensayo.getIdFalla().getItemCount();
		Atributo t[] = new Atributo[nBloques];
		
		bloque[i] = new Bloque(ensayo.getBloqueAtributo().getItem(i), nAtributos);
		
		for (int j = 0; j < nAtributos; j++) {
			bloque[i].setItem(ensayo.getAtributo().getItem(j));
			System.out.println(ensayo.getAtributo().getItem(j));
		}
		
		for (int k = 0; k < nFallas; k++) {
			bloque[i].setFallaPosible(ensayo.getCodigoFalla().getItem(k));
			System.out.println("fallas posibles: "+ensayo.getCodigoFalla().getItem(k));
		}
		

		System.out.println("Nombre: "+bloque[i].getNombre());
		t[i] = new Atributo(bloque[i]);
		
		if(!bloque[i].getEstado()){
			System.out.println(bloque[i].getNombre() + "  NO OK");
			}
			else
			{
				System.out.println(bloque[i].getNombre() + "  OK");
			}
		for (int a = 0; a < bloque[i].getItemSize(); a++) {
				
				if(bloque[i].item[a].getEstado())
				//	System.out.println("		" + bloque[i].getItem(a) + "    OK");
					db.insertarResultadoAtributo("OK", i, a); 
				 // insertarResultadoAtributo(null, OK, null, ensayo.getAtributo(), ensayo.getIdBloqueAtributo().getItem(i) , ensayo.getIdInstanciaEnsayo())
				else
				//	System.out.println("		" + bloque[i].getItem(a) + "    NO OK");
					db.insertarResultadoAtributo("No OK", i, a);
				//
				if(bloque[i].item[a].getFallaSize() > 0) {
						
						for(int f = 0; f < bloque[i].item[a].getFallaSize(); f++) {
				//			System.out.println("						" + bloque[i].item[a].getFalla(f));
							db.insertarFallaAtributo(bloque[i].item[a].getFalla(f));
						}
					}
				
			}		
			
			ensayo.delAtributo();
			ensayo.delIdAtributo();
			ensayo.delIdFalla();
			ensayo.delCodigoFalla();
			}
				
	
}


private void finalizarEnsayo() throws SQLException {
	
	// Insertamos los valores segun se haya hecho o no el ensayo
	db.verificarEstadoAtributos();
	
	if(ensayo.isRealizarExcentricidad()) {
		db.insertarResultadoExcentridad();
		if(!ensayo.isEstadoExcentricidad()) {
			ensayo.setEstadoEnsayo(false);
		}
	}
	if(ensayo.isRealizarFidelidad()) {
		db.insertarResultadoFidelidad();
		if(!ensayo.isEstadoFidelidad()) {
			ensayo.setEstadoEnsayo(false);
		}
	}
	if(ensayo.isRealizarLinealidad()) {
		db.insertarPuntosLinealidad();
		if(!ensayo.isEstadoLinealidad()) {
			ensayo.setEstadoEnsayo(false);
		}
	}
	if(ensayo.isRealizarMovilidad()) {
		db.insertarResultadoMovilidad();
		if(!ensayo.isEstadoMovilidad()) {
			ensayo.setEstadoEnsayo(false);
		}
	}
	if(ensayo.isRealizarPuestoCero()) {
		db.insertarResultadoPuestaCero();
		if(!ensayo.isEstadoPuestaCero()) {
			ensayo.setEstadoEnsayo(false);
		}
	}
	db.actualizarInstanciaEnsayo();
}


}//fin clase
